#ifndef ___HP45_H___
#define ___HP45_H___

#include "stm32f10x.h"
#include "L6452.h"
#include "delay.h"
#include "Motor.h"
#include "LY68L6400.h"


//宏定义电机参数
//X轴慢速移动一步 电平保持的时间参数
#define HP45_XM_MOVE_STEP_TIME			100//200
//X轴快速移动一步 电平保持的时间参数
#define HP45_XM_RUN_STEP_TIME			45
//X轴减速距离
#define HP45_XM_REDUCE_SPEED_STEP		500 
//X轴加速距离 
#define	HP45_XM_INCREASE_SPEED_STEP		500
//Y轴慢速移动一步 电平保持的时间参数
#define HP45_YM_MOVE_STEP_TIME			100
//Y轴快速移动一步 电平保持的时间参数
#define HP45_YM_RUN_STEP_TIME			600
//Y轴减速距离 为0
#define HP45_YM_REDUCE_SPEED_STEP		0
//Y轴加速距离为0
#define HP45_YM_INCREASE_SPEED_STEP		0

//Z轴慢速移动一步 电平保持的时间参数
#define HP45_ZM_MOVE_STEP_TIME			600
//Z轴快速移动一步 电平保持的时间参数
#define HP45_ZM_RUN_STEP_TIME			600
//Y轴减少距离 为200步4mm
#define HP45_ZM_REDUCE_SPEED_STEP		200
//Z轴加速距离
#define HP45_ZM_INCREASE_SPEED_STEP		0

//45打印测试时的起点坐标
#define HP45_X_ORIGIN					3850
#define HP45_Y_ORIGIN					2100
//45每排刷的byte长度为27个byte
#define HP45_BYTES_OF_ONE_LINE			19
//45打印测试Y方向的排数	
#define HP45_PRINT_TEST_Y_CNT			6
//45打印测试X方向移动的点数
#define HP45_PRINT_TEST_X_CNT			600
//45为300dpi 即两个点之间4步距离
#define HP45_STEPS_BETWEEN_TWO_POINTS	4
//Y轴下降 1/2排刷
#define HP45_YM_MOVE_TO_NEXT_HALF_ROW	318
//Y轴打印测试 单排移动一排的步数
#define HP45_YM_MOVE_TO_NEXT_ROW		628
//X轴移动到下一排的步数
#define HP45_XM_MOVE_TO_NEXT_ROW		4
//45每排喷头个数为150个			
#define HP45_INKCNT_OF_ONE_LINE  		150		
//45墨盒喷墨持续时间
#define HP45_INK_JET_TIME         		20                          //delay_nus的参数为17约2us
//45墨盒加热高电平保持时间
#define HP45_HEAT_INK_HOLD_TIME   		1                           //delay_nus的参数为1 约0.5us
//45三轴联动X轴移动的速度 
#define HP45_XM_XYZ_HOLD_TIME			1
//45三轴联动Y轴移动速度
#define HP45_YM_XYZ_HOLD_TIME			1
//45三轴联动Z轴速度
#define HP45_ZM_XYZ_HOLD_TIME			6
//45 双轴联动 X轴速度
#define HP45_XM_XY_HOLD_TIME			1
//45 双轴联动 Y轴速度
#define HP45_YM_XY_HOLD_TIME			1
//45 清洗墨盒 X轴的位子
#define HP45_XM_RINSE_INK_POSITION      1000
//45 清洗墨盒 Y轴的位子
#define HP45_YM_RINSE_INK_POSITION      0
//45 清洗墨盒需要喷墨的次数
#define HP45_RINSE_INK_JET              2000

//宏定义方向标识
#define FLAG_HIGH 						1
#define FLAG_LOW  						0


//函数声明
extern uint32_t HP45_MatchTheSizeOfPicture(uint16_t ThePictureOfX_px,uint16_t ThePictureOfY_px);
extern void HP45_ModifCenter(uint16_t x,uint16_t y);
extern void HP45_PrintTestDriver(void);
extern void HP45_PrintDriver(uint16_t ThePictureOfX_px,uint16_t ThePictureOfY_px);
extern void HP45_MachineBurnIn(void);
extern void HP45_DEFINE_Method_n(uint32_t Pparameter);

#endif
